package com.zhoujian.TemplateMethod;
//模板
public abstract class AbstractTemplate {
    //定义算法骨架，理论上算法骨架不能被重写
    public final void template(){
        //执行具体步骤
        step1();
        step2();
        step3();
        step4();

    }
//部分步骤由模板提供
    private void step1() {
        System.out.println("步骤1");
    }
//抽象方法必须由子类实现
    public abstract void step2();

    public void step3(){
        System.out.println("步骤3");
    }
    public void step4(){
        System.out.println("步骤4");
    }
}
